package com.swanclouds.model.account;

import com.swanclouds.model.ResourceEntity;

import java.util.List;
import java.util.Map;

/**
 * @author 张立强
 *
 */
public interface AccountResource extends ResourceEntity {
    /**
     * 用户服务资源的ID
     * @return id
     */
    String getId();

    /**
     * 用户服务资源的名称
     * @return name
     */
    String getName();

    /**
     * 用户服务使能状态
     * @return enabled
     */
    Boolean getServiceEnabled();

    /**
     * 用户账户集合资源的访问路径
     * @return ref
     */
    String accounts();

    /**
     * 用户角色集合资源的访问路径
     * @return ref
     */
    String roles();

    /**
     * 允许用户密码输入错误次数，超过该次数，用户被锁定。0 表示不限制
     * @return lockout
     */
    Integer getLockoutThreshold();

    /**
     * 用户登录失败后被锁定的时长。单位为秒，取值为10 的整数倍
     * @return duration
     */
    Integer getLockoutDuration();

    /**
     * 最小密码长度
     * @return minLength
     */
    Integer getMinPasswordLength();

    /**
     * 可供配置的最大密码长度
     * @return maxLength
     */
    List<Integer> getMaxPasswordLength();

    /**
     * 厂商自定义字段
     * @return oem
     */
    Map<String,Object> getOem();

}
